﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VentaElectrodomesticos.Sql;
using System.Data.SqlClient;
using VentaElectrodomesticos.AbmProducto;

namespace VentaElectrodomesticos.Facturacion
{
    public partial class FormValidadorDeStock : Form
    {
        private int stock = 0;
        private ClaseSQL sql = new ClaseSQL();
        private FormFacturacion formFacturacion;
        private Producto producto;

        public FormValidadorDeStock(FormFacturacion formFacturacion, Producto producto, int idSucursal)
        {
            InitializeComponent();
            this.producto = producto;
            this.formFacturacion = formFacturacion;


            try
            {
                sql.Open();
                String query = "SELECT stock FROM LAG.stock WHERE idProducto = "+producto.codProducto+
                    " AND idSucursal = "+idSucursal.ToString();
                SqlDataReader reader = sql.busquedaSQLDataReader(query);
                reader.Read();

                if (reader.HasRows)
                {
                    stock = (int)reader[0];
                    tbStock.Text = stock.ToString();
                }

            }
            catch(SqlException ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
            finally
            {
                sql.Close();
            }

        }

        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            int cantidad;

            if (int.TryParse(tbCantidad.Text, out cantidad))
            {
                if (stock >= cantidad && cantidad > 0)
                {
                    formFacturacion.recibirProducto(producto, cantidad);
                    this.Close();
                }
                else if (cantidad <= 0)
                {
                    MessageBox.Show("Ingrese una cantidad mayor a 0", "Atencion");

                }
                else
                {
                    MessageBox.Show("No se ha agregado el producto seleccionado por falta de stock", "Atencion");
                    if (stock == 0)
                    {
                        this.Close();
                    }
                }
            }
        }

        private void ingresarSoloNumericos(object sender, KeyPressEventArgs e)
        {
            if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "[0-9\b]+"))
                e.Handled = true;
        }
    }
}
